#ifndef DSPSIMULATOR_NEXT_H
#define DSPSIMULATOR_NEXT_H

#include <vector>
#include <simulator/command/command.h>

class Simulator;

class Instruction;

class NextCommand : public Command {
private:
    std::vector<std::shared_ptr<Instruction>> &m_executePacket;
public:
    explicit NextCommand(Simulator *dspSimulator, std::vector<std::shared_ptr<Instruction>> &executePacket) :
            Command(dspSimulator), m_executePacket(executePacket) {}

    ~NextCommand() override = default;

    void execute(std::string command) override;

    static std::shared_ptr<NextCommand>
    get(Simulator *dspSimulator, std::vector<std::shared_ptr<Instruction>> &executePacket);
};

#endif //DSPSIMULATOR_NEXT_H
